<?

/*!  Disciplinas da escola
/*!
    Esta classe representa a disciplina da escola no sistema.
*/
class Disciplina
{

    //! Consulta todas as disciplinas cadastradas
    /*!
        Pega todos as disciplinas cadastradas em ordem alfabetica.
        \return Lista de objetos
    */
    function consultarTodos()
    {
        $registros = array();
        $con = DB::connect(URL_CONEXAO);

        $resultado = $con->query("Select * from Disciplina order by nom_disciplina");

        while ($linha = $resultado->fetchRow(DB_FETCHMODE_OBJECT)) {
            array_push($registros, $linha);
        }
        return $registros;
    }

    //! Consulta com base em criterios
    /*!
        Efetua uma consulta por disciplina com base em alguns critérios.
        \param $nome Nome da disciplina
        \return Lista de objetos
    */
    function consultar($nome)
    {
        $registros = array();
        $con = DB::connect(URL_CONEXAO);
        $sql = "";

 
        if ($nome != "")
            $sql .= " nom_disciplina like '%" . $nome . "%' and";           

        if ($sql != "")
            $sql = substr(" where " . $sql, 0, -3);

        $sql = "select * from Disciplina " . $sql;

        $resultado = $con->query($sql);

        while ($linha = $resultado->fetchRow(DB_FETCHMODE_OBJECT)) {
            array_push($registros, $linha);
        }
        return $registros;
    }

    //! Consulta uma disciplina especifica
    /*!
        Pega do banco a disciplina com o código dado.
        \param $codigo código da disciplina
        \return Lista de objetos
    */
    function consultarUnico($codigo)
    {
        $registros = array();
        $con = DB::connect(URL_CONEXAO);
        $sql = "select * from Disciplina where cod_disciplina = " . $codigo . " ";

        $resultado = $con->query($sql);

        return $resultado->fetchRow(DB_FETCHMODE_OBJECT);
    }

    //! Cadastra uma nova disciplina
    /*!
        Cadastra uma nova disciplina no banco.
        \param $nome Nome da disciplina
        \return Boolean
    */
    function incluir($nome)
    {
        $con = DB::connect(URL_CONEXAO);
        $sql = "insert into Disciplina (nom_disciplina) " .
            " values ('$nome')";

        $flag = $con->query($sql);

        if (DB::isError($flag)) {
            return false;
        }
        return true;
    }

    //! Exclui uma disciplina do banco
    /*!
        Elimina uma disciplina do banco em definitivo
        \param $codigo código da disciplina
        \return Boolean
    */
    function excluir($codigo)
    {
        $con = DB::connect(URL_CONEXAO);
        $sql = "delete from Disciplina where cod_disciplina = " . $codigo . " ";

        $flag = $con->query($sql);

        if (DB::isError($flag)) {
            return false;
        }
        return true;
    }

    //! Altera uma disciplina
    /*!
        Atualiza uma disciplina no banco com novos valores
        \param $nome Nome da disciplina
		\param $codigo Código identificador da disciplina
        \return Boolean
    */
    function alterar($nome, $codigo)
    {
        $con = DB::connect(URL_CONEXAO);
        $sql = "Update Disciplina set nom_disciplina = '" . $nome . "' " ;

        $sql .= " where cod_disciplina = " . $codigo . " ";
        
        $resultado = $con->query($sql);

        if (DB::isError($flag)) {
            return false;
        }
        return true;
    }

}

?>
